/*
 * $QNXLicenseC: 
 * Copyright 2007, 2008, QNX Software Systems.  
 *  
 * Licensed under the Apache License, Version 2.0 (the "License"). You  
 * may not reproduce, modify or distribute this software except in  
 * compliance with the License. You may obtain a copy of the License  
 * at: http://www.apache.org/licenses/LICENSE-2.0  
 *  
 * Unless required by applicable law or agreed to in writing, software  
 * distributed under the License is distributed on an "AS IS" basis,  
 * WITHOUT WARRANTIES OF ANY KIND, either express or implied. 
 * 
 * This file may contain contributions from others, either as  
 * contributors under the License or as licensors under other terms.   
 * Please review this entire file for other proprietary rights or license  
 * notices, as well as the QNX Development Suite License Guide at  
 * http://licensing.qnx.com/license-guide/ for other information. 
 * $ 
 */





#include <dlfcn.h>
#include "proto.h"


void *_spi_dlload(void **hdl, const char *optarg)
{
	char		dllpath[_POSIX_PATH_MAX + 1];
	void		*dlhdl, *entry;

	if (strchr(optarg, '/') != NULL)
		strcpy(dllpath, optarg);
	else
		sprintf(dllpath, "spi-%s.so", optarg);

	dlhdl = dlopen(dllpath, 0);

	if (dlhdl != NULL) {
		entry = dlsym(dlhdl, "spi_drv_entry");

		if (entry != NULL) {
			*hdl = dlhdl;
			return entry;
		}

		dlclose(dlhdl);
	}

	return NULL;
}

__SRCVERSION( "$URL: http://svn/product/tags/public/bsp/nto650/ATMEL-AT91SAM9G45-EKES-650/latest/src/hardware/spi/master/_spi_dlload.c $ $Rev: 657836 $" );
